package com.hgyc.mom.system.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 系统菜单
 * </p>
 *
 * @author fwj
 * @since 2025-01-17
 */
@Getter
@Setter
@TableName("sys_menu")
@Schema(name = "SysMenu", description = "系统菜单")
public class SysMenu implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    @Schema(description = "父ID")
    private Long parentId;

    @Schema(description = "标题")
    private String label;

    @Schema(description = "名称")
    private String name;

    @Schema(description = "状态")
    private String status;

    @Schema(description = "排序")
    private Integer sn;

    @Schema(description = "类型")
    private Integer type;

    @Schema(description = "图标")
    private String icon;

    @Schema(description = "路由组件")
    private String component;

    @Schema(description = "路由地址")
    private String route;

    @Schema(description = "权限标识")
    private String permission;

    @Schema(description = "隐藏")
    private String hidden;

    @Schema(description = "新特性")
    private Boolean newFeature;

    @Schema(description = "内嵌页面")
    private String frameSrc;

    @TableField(fill = FieldFill.INSERT)
    private Long createBy;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @TableField(fill = FieldFill.UPDATE)
    private Long updateBy;

    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;
}
